Applying Scalable Interprocedural Pointer Analysis to Embedded Applications
نویسندگان
چکیده
This paper evaluates six different types of interprocedural pointer analyses on 22 telecommunication and media applications and describes their application to an SRAM power reduction technique. This configurable SRAM provides differentiation of data access time and port counts within a single on-chip structure. Scheduling for configurable SRAM relies on inter-procedural dependence analysis for safe assignment of program data objects to on-chip storage regions with little or no performance degradation. It thus provides a meaningful vehicle for exploring the applicability of and need for various interprocedural analysis techniques, as well as a demonstration of how compilation and hardware techniques can be combined to achieve optimization beyond that for performance.
منابع مشابه
Flow-Insensitive Interprocedural Alias Analysis in the Presence of Pointers
Data-ow analysis algorithms can be classiied into two categories: ow-sensitive and ow-insensitive. To improve eeciency, ow-insensitive interprocedural analyses do not make use of the intrapro-cedural control ow information associated with individual procedures. Since pointer-induced aliases can change within a procedure, applying known ow-insensitive analyses can result in either incorrect or o...
متن کاملA Correspondence between Two Approaches to Interprocedural Analysis in the Presence of Join
Many interprocedural static analyses perform a lossy join for reasons of termination or efficiency. We study the relationship between two predominant approaches to interprocedural analysis, the summarybased (or functional) approach and the call-strings (or k-CFA) approach, in the presence of a lossy join. Despite the use of radically different ways to distinguish procedure contexts by these two...
متن کاملA Scalable Nonuniform Pointer Analysis for Embedded Programs
In this paper we present a scalable pointer analysis for embedded applications that is able to distinguish between instances of recursively defined data structures and elements of arrays. The main contribution consists of an efficient yet precise algorithm that can handle multithreaded programs. We first perform an inexpensive flow-sensitive analysis of each function in the program that generat...
متن کاملInterprocedural Pointer Analysis for C Interprocedural Pointer Analysis for C
Interprocedural pointer analysis provides information on the values pointer variables may have at various points in a program. It is especially useful in languages like C, where pointers are extensively used. This analysis does not improve code directly but is used by other optimizations. This paper presents a framework in which to perform pointer analysis. Basic questions that any pointer anal...
متن کاملFully Automatic Verification of Absence of Errors via Interprocedural Integer Analysis
We present a interprocedural C String Static Verifier (iCSSV), a whole program analysis algorithm for verifying the safety of string operations in C programs. The algorithm automatically proves linear relationships among pointer expressions. The algorithm is conservative, i.e., it infers only valid relationships although it may fail to detect some of them. The algorithm is targeted to programs ...
متن کامل